User Location and Identity Awareness

ABSTRACT

A location of a computing device may be determined by determining the range of a communication. Several different wireless communication protocols and/or wireless networks (e.g., Bluetooth, Wi-Fi, Cellular, and/or GPS) may be used to determine the user&#39;s location. When the user&#39;s location is determined, one or more actions (e.g., granting access to content) may be performed based on the user&#39;s location.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 16/547,325, filed Aug. 21, 2019, which is acontinuation of U.S. patent application Ser. No. 14/305,702, filed Jun.16, 2014, now U.S. Pat. No. 10,440,499 which are hereby incorporated byreference in their entireties.

BACKGROUND

People often carry their mobile devices with them. As such, a person'slocation can be determined by determining the location of that person'smobile device. However, current systems for detecting the person'slocation may be inaccurate, time consuming, or not specific enough.Furthermore, current systems do not provide for dynamic and/or automatedactions to be performed based on the person's location, such as within ahome.

SUMMARY

This summary is not intended to identify critical or essential featuresof the disclosures herein, but instead merely summarizes certainfeatures and variations thereof. Other details and features will also bedescribed in the sections that follow.

A method described herein may comprise a determination that a locationof a user device cannot be determined using a first wireless protocol.The user device may comprise a mobile device. In response to thedetermination, the method may comprise attempting to determine thelocation of the user device using a second wireless protocol. Inresponse to a determination of the location of the user device, themethod may comprise using a profile of a user associated with the userdevice to determine an action corresponding to the location of the userdevice and sending, to a computing device, an instruction to perform theaction. The computing device may comprise at least one of a displaydevice and a set-top box, and the action may comprise generating acontent recommendation for the user associated with the user device.Additionally or alternatively, the action may comprise at least one ofadjusting a thermostat at the premises, turning on a security system atthe premises, and turning off a security system at the premises

If the location of the user device cannot be determined using the secondwireless protocol, the method may comprise attempting to determine thelocation of the user device using a third wireless protocol. In someaspects, the first wireless protocol may comprise a short-range wirelessprotocol, the second wireless protocol may comprise a medium-rangewireless protocol, and the third wireless protocol may comprise along-range wireless protocol. In some aspects, the first wirelessprotocol may comprise Bluetooth, the second wireless protocol maycomprise Wi-Fi, and the third wireless protocol may comprise at leastone of a Global Positioning System (GPS) protocol and a cellularprotocol. In yet other aspects, the first wireless protocol may compriseBluetooth, and the second wireless protocol may comprise at least one ofa cellular protocol, Wi-Fi, and GPS.

If the first wireless protocol comprises Bluetooth, the method maycomprise determining that the user associated with the user device isnot at home in response to a determination that the location of the userdevice cannot be determined using Bluetooth. If the second wirelessprotocol comprises Wi-Fi, the method may comprise determining that theuser device is within a predetermined distance from the premises inresponse to a determination of the location of the user device using aWi-Fi network at a premise of the user. An instruction may be sent to agateway device at the premises in response to a determination that theuser device is within the predetermined distance from the premises

A method described herein may comprise determining a first signalstrength of a first wireless transmission between a user device and afirst device and determining a second signal strength of a secondwireless transmission between the user device and a second device. Thedevice may comprise a mobile device. The first wireless transmission andthe second wireless transmission may comprise Bluetooth transmissions.The location of the user device may be determined based on the firstsignal strength and the second signal strength. In some aspects, thelocation may be within a premise, such as a user home. In response to adetermination of the location of the user device, the method maycomprise sending, to a computing device within the premises, aninstruction to perform an action corresponding to the location of theuser device.

In some aspects, determining the location of the user device based onthe first signal strength and the second signal strength may comprisedetermining that the first signal strength is greater than the secondsignal strength. In response to determining that the first signalstrength is greater than the second signal strength, the method maycomprise determining that the location of the user device is a firstroom within the premises, where the first device is located in the firstroom.

The location of the user device within the premises may be a first roomwithin the premises, and the first device may comprise a Bluetoothdevice located in the first room. The second device may comprise aBluetooth device located in a second room. Where the location within thepremises comprises a room within the premises, the action may compriseturning on at least one of a display device and a set-top box located inthe room. Additionally or alternatively, the action may comprisedisplaying a content recommendation for a user associated with the userdevice, and the computing device receiving the instruction may compriseat least one of the user device and a display device at the locationwithin the premises.

A method described herein may comprise a determination that a locationof a device cannot be determined using a first wireless network. Inresponse to the determination, the method may comprise attempting todetermine the location of the device using a second wireless network. Auser of the device may be permitted to access a group of content itemsbased on the location of the device and in response to a determinationof the location of the device. In some aspects, a plurality of otherdevices may be permitted to access the group of content items inresponse to permitting the user to access the group of content itemsbased on the location of the device. Furthermore, the plurality of otherdevices might not be located at the same location as the device. If itis determined that the device is no longer at the location, theplurality of other devices may be prevented from accessing the group ofcontent items.

In some aspects, the device may comprise a first device, and the groupof content items may comprise a first group of content items. The methodmay further comprise permitting the user of the first device and a userof a second device to access the first group of content items and asecond group of content items in response to a determination that thesecond device in a same group as the first device is at the location ofthe first device. The method may also include permitting the user of thefirst device, the user of the second device, and a user of a thirddevice to access the first group of content items, the second group ofcontent items, and a third group of content items in response to adetermination that the third device in the same group as the first andsecond devices is at the location of the first and second devices. Amessage notifying each of the devices of content restrictions for eachdevice may be sent.

The method may further comprise determining whether the device is withina premises associated with the user of the device. Furthermore,permitting the user of the device to access the group of content itemsbased on the location of the device may comprise permitting the user ofthe device to access a first group of content items if the device iswithin the premises, and permitting the user of the device to access asecond group of content items if the device is not within the premises.The second group of content items may be smaller than the first group ofcontent items. In some aspects, determining whether the device is withinthe premises may comprise determining whether a Bluetooth signal can betransmitted between the device and a Bluetooth device located in thepremises. The foregoing methods and other methods described herein maybe performed by a system, a computing device, a computer readable mediumstoring computer-executable instructions for performing the methods,and/or an apparatus having a processor and memory storingcomputer-executable instructions for performing the methods.

BRIEF DESCRIPTION OF THE DRAWINGS

Some features herein are illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements.

FIG. 1 illustrates an example information access and distributionnetwork.

FIG. 2 illustrates an example hardware and software platform on whichvarious elements described herein can be implemented.

FIG. 3 illustrates an example summary of a method of performing actionsbased on a user's location according to one or more illustrative aspectsof the disclosure.

FIG. 4 illustrates an example network of devices used to determineusers' locations and corresponding actions based on users' locationsaccording to one or more illustrative aspects of the disclosure.

FIG. 5 illustrates an example method of generating and storing a userprofile according to one or more illustrative aspects of the disclosure.

FIG. 6 illustrates an example interconnection of users' serviceaccounts, locations, telephone numbers, and device identifiers accordingto one or more illustrative aspects of the disclosure.

FIG. 7 illustrates an example network comprising a user premise, anawareness server, user devices, and other devices used to determine theuser's location according to one or more illustrative aspects of thedisclosure.

FIG. 8 illustrates example user profiles that correspond users'locations to automated actions according to one or more illustrativeaspects of the disclosure.

FIG. 9 illustrates an example method of determining a user's locationaccording to one or more illustrative aspects of the disclosure.

FIG. 10 illustrates an example method of performing automated actionsbased on a user's location according to one or more illustrative aspectsof the disclosure.

FIG. 11 illustrates another example method of performing automatedactions based on a user's location according to one or more illustrativeaspects of the disclosure.

DETAILED DESCRIPTION

FIG. 1 illustrates an example information access and distributionnetwork 100 on which many of the various features described herein maybe implemented. The network 100 may be any type of informationdistribution network, such as satellite, telephone, cellular, wireless,etc. One example may be an optical fiber network, a coaxial cablenetwork or a hybrid fiber/coax (HFC) distribution network. Such networks100 use a series of interconnected communication links 101 (e.g.,coaxial cables, optical fibers, wireless connections, etc.) to connectmultiple premises, such as locations 102 (e.g., homes, businesses,institutions, etc.), to a local office 103 (e.g., a central office orheadend). The local office 103 may transmit downstream informationsignals onto the links 101, and each location 102 may have a receiverused to receive and process those signals.

There may be one link 101 originating from the local office 103, and itmay be split a number of times to distribute the signal to variouslocations 102 in the vicinity (which may be many miles) of the localoffice 103. Although the term home is used by way of example, locations102 may be any type of user premises, such as businesses, institutions,etc. The links 101 may include components not illustrated, such assplitters, filters, amplifiers, etc. to help convey the signal clearly.Portions of the links 101 may also be implemented with fiber-opticcable, while other portions may be implemented with coaxial cable, otherlinks, or wireless communication paths.

The local office 103 may include an interface 104, which may be atermination system (TS), such as a cable modem termination system(CMTS), which may be a computing device configured to managecommunications between devices on the network of links 101 and backenddevices such as servers 105-107 (to be discussed further below). Theinterface 104 may be as specified in a standard, such as, in an exampleof an HFC-type network, the Data Over Cable Service InterfaceSpecification (DOCSIS) standard, published by Cable TelevisionLaboratories, Inc. (a.k.a. CableLabs), or it may be a similar ormodified device instead. The interface 104 may be configured to placedata on one or more downstream channels or frequencies to be received bydevices, such as modems at the various locations 102, and to receiveupstream communications from those modems on one or more upstreamfrequencies. The local office 103 may also include one or more networkinterfaces 108, which can permit the local office 103 to communicatewith various other external networks 109. These networks 109 mayinclude, for example, networks of Internet devices, telephone networks,cellular telephone networks, fiber optic networks, local wirelessnetworks (e.g., WiMAX), satellite networks, and any other desirednetwork, and the network interface 108 may include the correspondingcircuitry needed to communicate on the network 109, and to other deviceson the network such as a cellular telephone network and itscorresponding cell phones (e.g., cell phone 117).

As noted above, the local office 103 may include a variety of servers105-107 that may be configured to perform various functions. Forexample, the local office 103 may include a push notification server105. The push notification server 105 may generate push notifications todeliver data and/or commands to the various locations 102 in the network(or more specifically, to the devices in the locations 102 that areconfigured to detect such notifications). The local office 103 may alsoinclude a data server 106. The data server 106 may be one or morecomputing devices that are configured to provide data to users in thehomes. This data may be, for example, video on demand movies, televisionprograms, songs, text listings, etc. The data server 106 may includesoftware to validate user identities and entitlements, locate andretrieve requested data, encrypt the data, and initiate delivery (e.g.,streaming) of the data to the requesting user and/or device.

The local office 103 may also include one or more application servers107. An application server 107 may be a computing device configured tooffer any desired service, and may run various languages and operatingsystems (e.g., servlets and JSP pages running on Tomcat/MySQL, OSX, BSD,Ubuntu, Redhat, HTML5, JavaScript, AJAX and COMET). For example, anapplication server may be responsible for collecting data such astelevision program listings information and generating a data downloadfor electronic program guide listings. Another application server may beresponsible for monitoring user viewing habits and collecting thatinformation for use in selecting advertisements. Another applicationserver may be responsible for formatting and inserting advertisements ina video stream being transmitted to the locations 102.

An example location 102 a may include an interface 120. The interfacemay comprise a device 110, such as a modem, which may includetransmitters and receivers used to communicate on the links 101 and withthe local office 103. The device 110 may be, for example, a coaxialcable modem (for coaxial cable links 101), a fiber interface node (forfiber optic links 101), or any other desired modem device. The device110 may be connected to, or be a part of, a gateway 111 (e.g., a gatewayinterface device). The gateway 111 may be a computing device thatcommunicates with the device 110 to allow one or more other devices inthe home to communicate with the local office 103 and other devicesbeyond the local office. The gateway 111 may be a set-top box (STB),digital video recorder (DVR), computer server, or any other desiredcomputing device. The gateway 111 may also include (not shown) localnetwork interfaces to provide communication signals to devices in thehome, such as televisions 112, additional STBs 113, personal computers114, laptop computers 115, wireless devices 116 (wireless laptops andnetbooks, mobile phones, mobile televisions, personal digital assistants(PDA), etc.), and any other desired devices. Examples of the localnetwork interfaces include Multimedia Over Coax Alliance (MoCA)interfaces, Ethernet interfaces, universal serial bus (USB) interfaces,wireless interfaces (e.g., IEEE 802.11), Bluetooth interfaces, andothers.

FIG. 2 illustrates general hardware and software elements that can beused to implement any of the various computing devices (e.g., terminaldevices, remote control devices, etc.) discussed herein. The computingdevice 200 may include one or more processors 201, which may executeinstructions of a computer program to perform any of the featuresdescribed herein. The instructions may be stored in any type ofcomputer-readable medium or memory, to configure the operation of theprocessor 201. For example, instructions may be stored in a read-onlymemory (ROM) 202, random access memory (RAM) 203, hard drive, removablemedia 204, such as a Universal Serial Bus (USB) drive, compact disk (CD)or digital versatile disk (DVD), floppy disk drive, or any other desiredelectronic storage medium. Instructions may also be stored in anattached (or internal) hard drive 205. The computing device 200 mayinclude one or more output devices, such as a display 206 (or anexternal television), and may include one or more output devicecontrollers 207, such as a video processor. There may also be one ormore user input devices 208, such as a remote control, keyboard, mouse,touch screen, microphone, etc.

The computing device 200 may also include one or more network interfaces209, such as input/output circuits (such as a network card) tocommunicate with an external network 210. The interface 209 may be awired interface, wireless interface, or a combination of the two. Insome embodiments, the interface 209 may include a modem (e.g., a cablemodem), and the network 210 may include the communication links 101discussed above, the external network 109, an in-home network, aprovider's wireless, coaxial, fiber, or hybrid fiber/coaxialdistribution system (e.g., a DOCSIS network), or any other desirednetwork. The computing device 200 may communicate with the externalnetworks 210 or other devices using one or more communication protocols,such as wired communication protocols and wireless communicationprotocols (e.g., Wi-Fi, Bluetooth, ZigBee, Z-Wave, etc.).

FIG. 3 illustrates an example summary of a method of performing actionsbased on a user's location according to one or more illustrative aspectsof the disclosure. The steps may be performed by one or more computingdevice (such as a device at the location 102 a, a device at the localoffice 103, and/or a remote device that can communicate with thelocation 102 a or the local office 103). In step 305, the computingdevice may register a user and/or the user's devices (e.g., a mobiledevice, such as a cell phone) for location services. The computingdevice may also generate and/or store a user profile that correlatesautomated actions with the user's current location, as will be describedin further detail in the examples that follow. The location servicesdescribed herein may be opt-in. Therefore, each user may decide whetheror not to have his or her location tracked for use with the locationservices by, e.g., registering with the system. Step 305 will bedescribed in further detail in the examples that follow, such as withreference to FIG. 5.

In step 310, the computing device may determine the user's location by,for example, determining the location of the user's mobile device. Aswill be discussed in the examples below (such as with reference to FIG.9), the computing device may use several different wirelesscommunication protocols and/or wireless networks (e.g., Bluetooth,Wi-Fi, Cellular, and/or GPS) in a hierarchical manner to determine theuser's location.

In step 315, the computing device may perform one or more actions basedon the user's current location. For example, the computing device maysend an instruction to a display device or set-top box located in thesame room as the user to turn on or to display a content recommendationtailored to the user. As another example, the computing device may sendan instruction to deactivate a home security system when the user iswithin a predetermined distance from the home (e.g., just outside thedoor of the home or 100 feet from the home). Step 315 will be describedin further detail in the examples that follow (such as with reference toFIGS. 10 and 11).

FIG. 4 illustrates an example network 400 of devices used to determineusers' locations and corresponding actions based on users' locationsaccording to one or more illustrative aspects of the disclosure. Thenetwork 400 may include a user device 402, such as a mobile device.Examples of mobile devices include, for example, a mobile phone 116 or117, a tablet, a laptop computer 115, a PDA, or any other desireddevice. The mobile device 402 may include an awareness client 404, whichmay be a software client running on the mobile device 402. In someaspects, the awareness client 404 may run over a mobile operatingsystem, such as GOOGLE ANDROID, APPLE iOS, and the like. The mobiledevice 402 may also have an associated device identifier, such as an IPaddress, a range of IP addresses, a MAC address, a device name, or anyother identifier that uniquely identifies the mobile device 402. Theuser may also be able to assign an identifier to the mobile device 402,such as naming the device. The mobile device 402 may also have wireless(or wired) communication and/or location capabilities. For example, themobile device 402 may have a GPS transceiver, a Wi-Fi transceiver, and aBluetooth transceiver. Although not illustrated, the mobile device 402may also have other transceivers, such as a cellular transceiver forcommunicating over cellular telephone networks. As will be discussed infurther detail below, the mobile device 402 may send and receivemessages over GPS, Wi-Fi, Bluetooth, and/or cellular networks todetermine its location and/or which networks and devices the mobiledevice 402 is or can connect to. The location information may betransmitted, such as by the awareness client 404 of the mobile device402, to the awareness server 412, as will be discussed in further detailbelow.

The network 400 may also include a device 406, such as an STB, agateway, a television, a PC, or any other desired device. The device 406may be fixed in its location such that it is typically not moved by theuser. The fixed device 406 may have all or some of the same capabilitiesas the mobile device 402. For example, the fixed device 406 may beassociated with a unique identifier. A user may name his or her set-topbox (e.g., Corey's Living Room set-top box). The fixed device 406 mayalso have an awareness client 408 running over an operating system. Thefixed device 406 may also have wireless (or wired) communication and/orlocation capabilities. The example fixed device 406 illustrated in FIG.4 has a Bluetooth transceiver, a Wi-Fi transceiver, and an interface forwired communications (e.g., Ethernet, coaxial communication, opticalfiber communication, etc.). The fixed device 406 may also send andreceive messages over wireless or wired networks to determine itslocation and/or which networks and devices the fixed device 406 is orcan connect to. For example, the fixed device 406 may communicate withthe mobile device 402 via Bluetooth or Wi-Fi. Location information maybe transmitted, such as by the awareness client 408 of the fixed device406, to the awareness server 412, as will be discussed in further detailbelow.

The network 400 may also include a device 410, which may be a devicecapable of communicating using a limited number of communicationprotocols. The example device 410 illustrated in FIG. 4 can communicatewith other devices via Bluetooth. However, the device 410 might not beable to communicate over, for example, GPS, Wi-Fi, and/or cellularsignals. In some embodiments, an awareness client could be placed on theBluetooth-only device 410. However, this need not be the case; theBluetooth-only device 410 might not have an awareness client. TheBluetooth-only device 410 may broadcast Bluetooth messages, which may beused to analyze signal strengths in order to determine or refine thelocation of user devices and their associated devices, as will bediscussed in further detail in the examples below. The Bluetooth-onlydevice 410 may also be registered (e.g., paired) with one or more otherdevices, such as the mobile device 402 and the fixed device 406. TheBluetooth devices may be located, for example, at the user's home, in aparticular room in the user's home, in the user's car, outside of theuser's home, etc.

The network 400 may also include an awareness server 412. The awarenessserver 412 may comprise one or more computing devices, such as theservers 105, 106, and/or 107 at the local office 103. The awarenessserver 412 may also be cloud-based, utilizing one or more networkedcomputing devices to receive, process, store, and send information. Insome aspects, the awareness server 412 may receive information(including location information) from the devices 402 and 406. Forexample, the awareness clients 404 and 408 of the devices 402 and 406,respectively, may send information in real time to a listener 414 of theawareness server 412. The listener 414 may comprise a softwareapplication that actively prompts and/or listens for information,including requests made, from various client devices.

The awareness server 412 may include other software and/or hardwarecomponents. For example, a home location configuration application 416may allow a user to configure his or her home topology and map devicesto the configured topology. A device registration application 418 mayallow a user to register devices (discovered by the user device 402,such as other user devices, and Bluetooth-enabled devices). The deviceregistration application 418 can also be populated by other means suchas with information for devices that are purchased via other means (likebuy flows or point of sale applications). A user authenticationapplication 420 may correlate user devices with user identifiers, suchas usernames/passwords for a service provider account, a social mediaaccount (e.g., FACEBOOK, TWITTER, and the like). By correlating userdevices with user identifiers, the user might not have to provide apassword to log into each account. Rather, the user might automaticallybe logged on to some or all of the user's accounts by, for example,bringing his or her device within the proximity of another device, suchas a fixed device in the home.

A location awareness application 422 may be used to determine where theuser is located based on one or more pieces of information it hasreceived from the devices 402 and/or 406. Example location informationinclude, but are not limited to, identity of the Bluetooth device havingthe highest signal strength relative to the user device, Wi-Fi or wiredInternet Protocol information, mobile geo-location information (e.g.,from GPS or cellular radios), and other device and user information thelocation awareness application 422 could access on its own (e.g.,information stored in the cloud). The location awareness application 422may determine (or estimate) the user's location, the identity of theuser, and which devices (e.g., the mobile device 402, the fixed device406, or the Bluetooth device 410) the user is using or is near. User,device, location (raw or determined), and other information may bestored in an awareness database 424. The methods described herein may beperformed by the aforementioned network of devices 400 or by a similarsystem.

In some aspects, all or a portion of the information stored in theawareness server may be replicated or otherwise copied to a device inthe location 102 a and/or user device. For example, a particular user'sprofile, which might include user information, device information,location information, and other information, may be cached at a devicein the location 102 a, such as the gateway 111. The same may be done forother users (e.g., users at each of the locations 102). By caching theinformation, the amount of time to access the information may bereduced.

FIG. 5 illustrates an example method of generating and storing userprofiles according to one or more illustrative aspects of thedisclosure. The method may be performed by any of the computing devicesdescribed herein, including cloud computing devices, computing devicesat the local office 103, computing devices within the location 102,and/or mobile computing devices (e.g., a mobile phone).

In step 505, the computing device may generate (e.g., create) a userprofile used for or associated with location services. Location servicesmay include, for example, tracking the user's location and performingautomated actions based on the user's location. If a profile for theuser already exists, such as if it was previously generated, thecomputing device may instead retrieve the user's profile. For example, auser profile may have been generated when the user signed up forinternet access through an internet (or other) service provider. Whenthe user desires to sign up for location services, the computing devicemay retrieve the user's internet service provider profile rather thangenerating a new profile. As will be discussed in further detail in theexamples below, the user profile may identify users' preferences and beused to identify the topology of the user's home, devices, identifiers,telephone numbers, and the like. For example, the user profile mayassociate the user's locations with one or more automated actions.

In step 510, the computing device may determine identifiers for theuser. Referring now to FIG. 6, FIG. 6 illustrates an exampleinterconnection of users' service accounts, locations, telephonenumbers, and device identifiers according to one or more illustrativeaspects of the disclosure. Example user identifiers may be associatedwith data from one or more service accounts 602, such as an accountnumber, a user's physical address, a user's email address, the primaryaccountholder's user identifier, a secondary accountholder's useridentifiers, and social media identifiers (e.g., FACEBOOK usernameand/or password, TWITTER username and/or password, and the like).

User identifiers may also comprise (or be associated with) one or moretelephone numbers 604, such as the user's telephone number (e.g., amobile phone number), a primary user's primary telephone number, aprimary user's secondary telephone number, a secondary user's primarytelephone number, and a secondary user's secondary telephone number.Each of the telephone numbers 604 may be mapped to a service accountidentifier 602. For example, a user's primary telephone number1-123-456-7890 may be mapped to (or otherwise correlated with) theprimary user's service account ID. A secondary user's primary telephonenumber 1-555-333-1212 may be mapped to the secondary user's identifier(e.g., test_user@comcast.net) and the secondary user's FACEBOOK account.

In some aspects, primary and secondary users may form a group of usersfor location services. A primary user may add one or more secondaryusers to the primary user's account. The secondary users may, but neednot, be related to the primary user. For example, the group may comprisea mobile phone family plan. Each family member's mobile number may bemapped back (e.g., paired) with that family member's service accountidentifier. Alternatively, more than one family member's number could bemapped to a single service account identifier, or more than one serviceaccount identifier could be mapped to a single telephone number. Detailson grouping users for location services will be discussed in furtherdetail in the examples below.

Returning to FIG. 5, in step 515, the computing device may determinewhether the user has opted-in to location services (e.g., to have theuser's locations tracked). If the user has not opted-in to locationservices, the method illustrated in FIG. 5 may end, and the computingdevice may store the user's profile in step 540. If the user hasopted-in to location services, the computing device may add and/orcorrelate other information with the user's profile. In some aspects,the location services may alternatively be opt-out.

In step 520, the computing device may identify and/or store anidentifier for each of the user's devices. The user may provide a listof his or her devices to the computing device. Additionally oralternatively, the computing device may automatically detect the user'sdevices. For example, the computing device may identify each devicehaving a location service application, such as the awareness client 404or the awareness client 408 that the user has signed on to. Thecomputing device may also automatically add devices that connect to aparticular network (e.g., an in-home Wi-Fi network or Z-Wave network) tothe list of devices. When a device is automatically added, the computingdevice may trigger a message (e.g., an email, a text message, a popupmessage, etc.) to be sent to an owner of the network to validate thedevice (e.g., as a trusted device or a guest device). A website ormobile application may also be used to correlate a user with the user'sdevices. For example, a graphical user interface (GUI) used to configurethe topology of the user's home, such as a GUI similar to the oneillustrated in FIG. 7, may be used by the user to input information forthe user's devices. Social media accounts may also be used to link usersto devices. For example, when the user signs on to the social mediaaccount on a particular device, the website or application used toperform the sign-on could send information identifying the user deviceto the awareness server 412 to be stored in the awareness database 424.

As previously discussed, the devices may include a mobile phone, tablet,laptop computer, PDA, or any other mobile device (e.g., devices that theuser might carry). As illustrated in FIG. 6, each device 606 may haveone or more device identifiers. Example identifiers include IPaddresses, MAC address, device name, or any other identifier thatuniquely identifies the device, as previously discussed. As illustratedin FIG. 6, each device can be mapped to one or more telephone number604, which may in turn be mapped to one or more service accountidentifier 602. Alternatively, a device may be mapped directly to aservice account identifier 602, such as if the device does not have atelephone number (e.g., a Wi-Fi only device).

Returning to FIG. 5, in step 525, the computing device may identifyand/or store an identifier for other devices that may be used todetermine the user's location. These other devices may include, forexample, the fixed devices 406 and/or the Bluetooth-enabled devices 410illustrated in FIG. 4. The methods for identifying these other devicesmay be the same (or similar) to the methods used to identify the user'sdevices described with reference to step 520. For example, the user mayprovide a list of these devices to the computing device, or thecomputing device may automatically detect these devices. ForBluetooth-compatible devices, the device name or ID may be part of theBluetooth specification.

A gateway device, such as the gateway 111, may be used to determine theuser's location. For example, the gateway 111 may be a set-top box withBluetooth capability. As will be discussed in the examples below,Bluetooth communications between the set-top box and the user device maybe used to determine the user's current location. In other words, if auser device detects a Bluetooth signal from the set-top box (or viceversa), the server may determine that the user is in the same room asthe set-top box. As another example, the gateway 111 may be (or beconnected to) a wireless (e.g., Wi-Fi) router that provides a wirelessnetwork. As will be discussed in the examples below, the device'sconnection to the wireless network may be used to determine that theuser is currently within the home or a predetermined distance from thehome. Furthermore, IP addresses (or address ranges) may identify thephysical location of the device having the IP address or IP addressrange. For example, a home Wi-Fi network might have a predetermined IPaddress range. If a device has an IP address within that range, thecomputing device may determine that the device is within the home (or apredetermined distance from the home).

Any of the mobile devices 402, fixed devices 406, and Bluetooth-enableddevices 410 may be used to identify any of the other mobile, fixed, andBluetooth-enabled devices. For example, the mobile device 402 may havean application, which may be the awareness client 404, that scans forother devices with Bluetooth capabilities within the Bluetooth range ofthe mobile device 402, such as the fixed device 406 (if it has Bluetoothcapabilities) or the Bluetooth-enabled device 410. The mobile device 402may identify the Bluetooth-enabled device during an exchange of messageswith that device over Bluetooth. For example, the Bluetooth-enableddevice may send an identifier for itself to the mobile device 402 duringthe exchange. The mobile device may send, to the awareness server 412,identifiers for the Bluetooth-capable devices it detects, and theidentifiers may be stored in the profile of the user associated with themobile device 402. This may be especially beneficial when aBluetooth-enabled device 410 cannot communicate directly with awarenessserver 412. The fixed device 406 may similarly be used to identify othermobile, fixed, and Bluetooth-enabled devices and send the identifiers tothe awareness server 412.

Returning to FIG. 5, in step 525, the computing device may alsodetermine and/or store the location of each device that may be used todetermine the user's location or otherwise associate the device with theuser. For example, in FIG. 6, devices 606 may be associated with one ormore location 608. Referring now to FIG. 7, FIG. 7 illustrates anexample network 700 including a user premise 702, awareness server 704,user devices 750, 752, and 754, and other devices used to determine theuser's location according to one or more illustrative aspects of thedisclosure. Awareness server 704 may correspond to, for example,awareness server 412 illustrated in FIG. 4 and be used to store userprofiles, determine the user's location, and/or determine actions toperform based on the user's current location. As previously discussed,the topology of network 700 may be generated based on user input orconfiguration. For example, the user may input the topology via a userconfiguration GUI on the user's phone, laptop, etc. The user may providethe rooms and each device located in the rooms, as will be discussed inthe examples below.

User premise 702 may be, for example, one of the locations 102illustrated in FIG. 1. However, the user premise 702 is not limited to ahome and may include any other type of user premises, such asbusinesses, institutions, etc. The user premise 702 can be physically orvirtually divided into, for example, different regions (e.g., areas orrooms). Each distinct region can be inside or directly outside of theuser premise 702. Example user premise 702 includes a living room 708,kitchen 710, kid's playroom 712, media room 714, bedroom 716, anddeck/porch 718. The deck/porch 718 may be directly outside of the userpremise 702, whereas the remaining rooms may be inside the user premise702.

The network 700 may include one or more mobile devices associated withthe user, such as a mobile phone 750, a mobile phone 752 (or,alternatively, a laptop), and a mobile phone 754 (or, alternatively, atablet computer). The network 700 may also include devices used todetermine the user's location, which might be located inside or outsidethe user premise 702. For example, a Bluetooth device 720 may be locatedin the living room 708. A Bluetooth device 722 may be located in thekitchen 710. A wireless (e.g., Wi-Fi) router 724 may be located in themedia room 714 or any other room within the user premise 702. Celltowers 726 may be located outside of the user premise 702. Other devicesused to determine the user's location that are not illustrated in FIG. 7include, for example, GPS satellites, Bluetooth devices within orintegrated with the user's car, and other devices capable of connectingwith the user's mobile devices 750, 752, and/or 754.

The computing device may determine the location of each device thatcould be used to determine user's location. The user may manually enterthe location for each device into the user's device (e.g., the mobilephone 750). For example, the user may enter the device identifier (e.g.,a name for the Bluetooth Device 720) and the location of the device(e.g., the living room 708) into the user's mobile device 750. Asdiscussed above, the user may provide information to a GUI to associatedevices with rooms. Alternatively, the awareness server 704 mightalready know the identity of each of the devices, but not know thelocation of each device. The awareness server 704 may send the identityinformation to the user's mobile device 750, and the mobile device 750may prompt the user to input the location for each of the devices. Oncethe user provides the location for each device, the locations may bestored in the user's profile (e.g., in an awareness database 424 in theawareness server 704).

In some aspects, the location of each device may be determined based onthe name of one of the devices (e.g., a gateway device) and itsproximity to other devices. For example, a user may name the user's STB“Living Room's Set Top Box.” The computing device may determine thatthat particular STB is in the Living Room 708 based on characterrecognition or other text matching method. If other devices connect tothe Living Room Set Top Box, such as via Bluetooth or other short-rangeprotocol, the computing device may determine that those devices are alsoin the Living Room 708. The signal strength of such connections may alsobe used to determine the location of those other devices, as will bediscussed in further detail, e.g., with respect to FIG. 9.

Alternatively, the awareness server 704 might already know the topology(e.g., layout) of the user premise 702, including that the user premise702 has a living room 708, kitchen 710, kids playroom 712, media room714, bedroom 716, and deck/porch 718. For example, the user may haveprovided the awareness server 704 with the topology of the home when theuser registered for services, such as mobile phone services, internetservices, content services, etc. Alternatively, the topology of the homemay be pulled from public records for structures such as if the user hasmade the topology or blueprint of the home public and available througha title company. The awareness server 704, however, might not know whichdevices are in each room. The awareness server 704 may send a list ofrooms in the home to the user's mobile device 750, and the mobile device750 may prompt the user to identify devices in each of the rooms. Forexample, the mobile device 750 may display “Living Room.” The user mayinput a device identifier for the Bluetooth Device 720, such as the name“Living Room Bluetooth Speakers.” Alternatively, the mobile device 750may pair with the Living Room Bluetooth Speakers and automatically sendan identifier for the speakers to the awareness server 704. Afterreceiving the information, the awareness server 704 may correlate theLiving Room 708 with the Living Room Bluetooth Speakers 720. Informationidentifying each of the Bluetooth device 722 in kitchen 710, theBluetooth device in the kid's playroom 712, the Bluetooth device in themedia room 714, and the Bluetooth device in the bedroom 716 may beprovided to the awareness server 704 in a similar manner as theBluetooth device 720.

Instead of the user's mobile device sending the information to theawareness server 704, a different device, such as a fixed device 406 orany other device that can communicate with the awareness server, mayprovide the location and/or device information. For example, the usermay utilize the input/output capabilities of a display device (e.g., atelevision) and/or a gateway device (e.g., a set-top box or router) toprovide location and/or device information to the awareness server 704.When the awareness server 704 receives the location or deviceinformation, it can store the information in the user's profile.

Returning to FIG. 5, in step 530, the computing device may determinegroups, such as permission groups, that the user belongs to or shouldbelong to. The computing device may generate a new permission group withthe user as a member. Alternatively, the computing device may add theuser to an already-existing permission group. As previously discussed, aprimary user and secondary users in a content service account or mobiletelephone service account may be included in the same group. Forexample, the group may include all members on the same mobile serviceaccount (e.g., all family members on a family plan). A user, such as theprimary user, may have the authority to add other users to the group.Alternatively, each user of the group may have the authority to addother users to the group. In some aspects, the location serviceprovider, content service provider, mobile phone service provider, orany other service provider associated with the users and/or groups mighthave to give permission to the user to add additional users to thegroup.

Each user may also have one or more devices, such as mobile devices 606illustrated in FIG. 6. Each user's devices may be mapped to one or moretelephone number 604 and/or service account identifier 602. By bindingdevices to one another and/or to telephone numbers or service accountidentifiers, authentication and content access permissions may beestablished for devices in the group.

The user's device, such as a mobile phone, may be used to authenticatethe user, such as for services and/or products. For example, the usermay seamlessly sign on for services and/or products (e.g., to accesscontent items, to access mobile phone services, etc.) using his or hermobile phone. In other words, the phone may act as a mobile wallet orpassport for signing in the user for any products and servicesassociated with the user's or user device's identifiers (e.g., theservice account identifiers 602, the telephone numbers 604, the deviceidentifiers 606, and the like). By using the device for authentication,the user might be able to access these services and/or products withouthaving to manually authenticate him or herself (e.g., by entering ausername and password).

Users within the same group may also be authenticated using theirdevices. For example, if a user within the group is authenticated for aproduct or service using the user's device, the other users in the groupmay be automatically authenticated for the same product or service.Individual and group authentication may also be based on one or moreusers' locations, as will be described in more detail in the examplesbelow.

Content access permissions may also be set for an individual user orusers in the same content access permission group. For example, if oneuser is permitted to access particular content, other users in the samegroup may be permitted to access the same content, without the otherusers having to be separately authenticated to access the content.Individual and group content access permissions may also be based on oneor more users' locations, as will be described in more detail in theexamples below.

Users may optionally be categorized as trusted (e.g., associated with apermanent device) or untrusted (e.g., associated with a guest device). Atrusted device may be permitted to access more services thanuntrusted/guest devices. Furthermore, trusted users may be permitted totemporarily add guest devices to the group. For example, a friend mayvisit a primary user's home and connect to one or more of the home'snetworks. The primary user may be permitted to temporarily add thefriend's device to the primary user's group.

In step 535, the computing device may determine automated actions totake based on the user's current location. FIG. 8 illustrates exampleuser profiles 800 that correlate users' locations to automated actionsaccording to one or more illustrative aspects of the disclosure. Forsimplicity, other information stored in the user's profile are notillustrated in FIG. 8. The example profile 800 shows separate profilesfor a first user 805 and a second user 810. As previously discussed, thefirst user 805 and second user 810 may be in the same group, such as apermission group. Inclusion of users in the same group may haveimplications for authentication and/or content access permissions.

The profile for the first user 805 may correlate a location with one ormore automated actions or an automated action with one or more location.The automated actions may relate to access to content and/or homeautomation. For example, when the first user 805 is in the living room,the set-top box (or television) may switch to a default channel, such asthe user's favorite channel. This channel may be identified in theuser's profile, for example. Content may also be pushed to the firstuser's mobile device when the user enters the living room. For example,news information, weather information, and the first user's work emailsmay be pushed to the first user's mobile device when the first userenters the living room. The first user may also be given full access tostreaming content (e.g., via a set-top box, a computer, a television, atablet computer, a mobile phone, etc.) when he or she is in the livingroom. For example, the user may be subscribed to a content subscriptionplan, and the user may be authorized to access all of the content underthe subscription plan when the user is in the living room. As will bedescribed in the examples below, the user might not be able to accessall of the content under the subscription plan when the user is at adifferent location such as outside (but within 20 feet of) the home.

When the first user 805 enters his or her bedroom, the living roomtelevision (or any other device, such as lights) may be turned off. Thefirst user 805 might also have full access to streaming content while inthe bedroom. A home security system at the user's premise may also beset when the first user 805 enters the bedroom. For example, the motiondetectors may be activated (or otherwise turned on) when the first userenters his or her bedroom.

When the first user 805 enters his or her deck or porch, the lights inthe user's home may be automatically turned off. As will be discussed infurther detail in the examples below, the user's specific locationwithin the user's home may be determined using one or more Bluetoothdevices or other protocols of short or medium range.

Automated actions may also be taken when the user is outside of thehome. For example, when the first user 805 is within twenty (20) feet ofthe home, the first user's set-top box and television may be turned on.Furthermore, when the user is outside, but within 20 feet of the home,the first user 805 might be given limited access to streaming content.For example, the first user 805 might be given access to a subset of thestreaming content that the user can access when the user is within thehome or within a particular room in the home (e.g., the living room).

When the first user 805 is within one (1) mile of the home, content maybe pushed to the first user 805's mobile device. Alternatively oradditionally, the content may be pushed to mobile devices associatedwith other users in the same group as the first user 805, such as thesecond user 810's mobile device. The content may comprise, for example,an advertisement, a message indicating that the first user 805 is within1 mile of the home, or any other content. The first user 805 may also begiven limited access to streaming content when the first user 805 iswithin 1 mile of the home.

When the first user 805 is within ten (10) miles of the home, thetemperature at the home may be adjusted via a thermostat in the home.For example, the temperature may be increased (e.g., by turning on theheating system or turning off the air conditioning system) or decreased(e.g., by turning on the air conditioning system or turning off theheating system), based on the user's preferences stored in the profile.

When the first user 805 is at another location, such as a store, thecomputing device may permit a third party to send content, such asadvertisements, coupons, and other content, to the first user's mobiledevice. For example, a coupon for a product or service may be sent tothe user when he or she enters the store.

The second user 810 may also have a profile correlating locations withactions (e.g., content actions and/or home automation actions). If thesecond user 810 is in the living room, the set-top box and the displaydevice (e.g., a television) in the living room may be turned on, acustom interface for the second user 810 may be pushed to or displayedon the remote control for the set-top box or television, and a contentrecommendation for the second user 810 may be generated and/or displayedon the television or display device in the living room or on the user'smobile device. Content recommendation will be described in furtherdetail in the examples below.

If the second user 810 is in the bedroom, the display device in thebedroom may be turned on and a home security system, such as the motiondetectors outside of the bedroom, may be turned on. If the user isoutside (on the deck or porch), the lights in the home can be turnedoff, which is the same action that would be performed if the first user805 goes to the deck.

When the second user 810 is within 20 feet of the home, a set-top box inthe home may be turned off, a television in the living room may beturned off, and the home security system may be set. Alternatively, thehome security system at the home may be turned off if the second user810 is returning home from a different location, such as work. The doorsto the home may also be locked or unlocked. Similarly, the garage doormay be opened if the second user 810 is arriving home or closed if thesecond user 810 is leaving home.

When the second user 810 is within a mile from the home, the temperaturein the home may be adjusted (for example, turned down). Furthermore,users in the same group as the second user 810 may be permitted toaccess a particular set of content when the second user 810 is within amile from the home. For example, group members may be able to access anentire set of content when the second user 810 is within 20 feet of thehome or inside the home, but group members might only be able to accessa subset of the entire set of content when the second user 810 isbetween 20 feet and 1 mile from the home. When the second user 810 iswithin 10 miles from the home, the home temperature may be adjusted (forexample, turned up). Like the first user 805, the second user 810 may besent content, such as advertisements, by third parties when the seconduser 810 is at another location, such as a store.

The following table illustrates other non-limiting examples of actionsthat may be taken based on the user's location:

Location Action User leaves home (e.g., Send instruction to gatewaydevice (or other network mobile phone disconnects device) to make theuser's home network visible in from home Wi-Fi network) the Cloud,allowing the user to access content on the home network (e.g.,documents, movies, music, etc.) and/or save, on the home network,pictures or movies taken from user's mobile phone User leaves home(e.g., Send instruction to update user's call forwarding mobile phonedisconnects preferences to forward calls made to home from home Wi-Finetwork) telephone(s) to user's cell phone; send instruction to disablecaller ID on STB User enters home (e.g., mobile Send instruction toupdate user's call forwarding phone connects to home Wi-Fi preferencesto disable call forwarding; send network) instruction to enable callerID on STB User is in front of display Send instruction to gateway or STBto generate and/or device (e.g., in living room) display personalizedcontent recommendation for user based on content marked as favorites,recently watched content, accessibility settings, and/or other factorsUser is in car (detected by When user is in car and within apredetermined Bluetooth device in car, distance from a mechanic, such asa car dealership, cellular triangulation and/or send message to user'smobile device or display in car GPS) and car sensor to displayidentification of and/or directions to previously or currently mechanicwithin predetermined distance from car's indicates that service on thecurrent location (e.g., within 5 miles) car is recommended (e.g., oilchange, check engine light, etc.) User was previously at a retail Sendinstruction to a home gateway, STB, or display location or other storeand is device to display an advertisement for a product or currently athome service of the store that user visited (e.g., a J.CREW coupon oradvertisement) User is outside of home (e.g., Retrieve contactinformation for transportation at a bar) and current time is service,such as taxi company or UBER, and contact late (e.g., past midnight) thetransportation service to pick user up at bar; or push contactinformation for transportation service to user's mobile device Userpreviously watched a If user is within predetermined distance ofrelevant cooking show on TV with a restaurant (e.g., Italianrestaurant), display particular theme (e.g., type of notification, suchas directions to the restaurant or cuisine, such as Italian, or typecontact information for the restaurant; if user is within of dish, suchas chicken tikka predetermined distance of grocery store, retrieve listmasala) and is currently within of ingredients for relevant dish (e.g.,chicken tikka predetermined distance (e.g., 5 masala) from website orother network location and miles) from relevant restaurant display onuser's device or grocery store User is more than 60 miles Sendinstruction to thermostat in home or other smart from home andtemperature in home device to turn temperature in home up to a homearea/neighborhood is predetermined temperature (e.g., 68 degrees) belowfreezing (based on weather information retrieved from network location,such as weather website) A preferred sports team is Send instruction forcontent recording device, such as playing or a favorite television DVR,to record the program and/or send an alert to show or movie is airing(e.g., user's mobile device that favorite program has started stored inuser's content or is about to start (e.g., 5 minutes before start time)preferences), and user is outside the home User is currently at aIdentify predetermined businesses or dynamically sponsored location(e.g., determine businesses within predetermined distance user's mobilephone connects from sponsored location, and send recommendations to aWi-Fi hot spot associated or discounts for those businesses for displayon user's with entity providing location mobile device servicesdescribed herein) Member of primary user's Retrieve flight and airportinformation from the web group (e.g., a family member) and sendinstruction to primary user's mobile device lands at airport (e.g.,based on and/or gateway device in primary user's home, such detectingthat cell phone has as STB, to display the retrieved information alongreconnected to cell tower) with notifying the primary user of thesecondary user's landing Parents are not at home (or not Make somechannels on STB temporarily unavailable, in living room) such as allchannels above a certain rating (R, PG-13, etc.) Child has left the homeSend text message to a parent's mobile phone and/or send instruction forSTB or other display device in home to display notification of the childleaving home Indication of severe weather Generate coupon for contentpurchases, such as VOD (e.g., from TV, website, alert purchases, andsend coupon for display on user's pushed to user's device, etc.) mobiledevice or home STB/display device to weather and user (e.g., parent orchild) the storm or multiple users (e.g., parent and child) are homeTeenage family member Send notification to STB/display device orparent's drives over the speed limit, mobile device that teenager hasdriven over the speed which may be detected based limit on teenager'slocation, speed, and speed limit at the location (speed limit may bepulled from an online database)

Returning to FIG. 5, in step 540, the computing device may store theuser's profile correlating locations with actions (among otherinformation) in, for example, the awareness database 424 illustrated inFIG. 4. As one of ordinary skill in the art would appreciate, profilesmay be stored at any location, including within the user's home and/oroutside of the user's home.

FIG. 9 illustrates an example method of determining a user's locationaccording to one or more illustrative aspects of the disclosure. In someaspects, the user's location may be determined in a sequential (e.g.,hierarchical) manner. As will be discussed in the examples below, acomputing device may attempt to determine the user's location usingfirst information, such as Bluetooth location information. If the user'slocation cannot be determined using the first information, the computingdevice may attempt to determine the user's location using secondinformation, such as Wi-Fi location information. If the user's locationcannot be determined using the first or second information, thecomputing device may attempt to determine the user's location usingthird information, such as GPS or cellular network location information.The computing device may sequentially use each type of information untilthe user's location is determined. Alternatively, the computing devicemay use a combination of the information (e.g., first information andthird information) to determine the user's location. The method may beperformed by any of the computing devices described herein, includingcloud computing devices, computing devices at the local office 103,computing devices within the location 102, and/or mobile computingdevices (e.g., a mobile phone).

In step 905, the computing device may receive first locationinformation. The first location information may be retrieved from astorage device, such as the awareness database 424, if it was previouslyreceived and stored or directly from a mobile device 402 or a fixeddevice 406 if the real-time information is in. The first locationinformation may comprise location information with the best sensitivity.For example, the first location information may come from a short-rangewireless protocol, such as Bluetooth. Any version of Bluetooth may beused. Examples include all versions of Bluetooth, including but notlimited to Classic Bluetooth, Bluetooth high speed, and Bluetooth LowEnergy (BLE). Other examples of short-range wireless protocols that maybe used include, for example, ZigBee, infrared (e.g., IrDA), Z-Wave,audio watermarking, Wi-Fi Direct, etc.

Bluetooth may be used in a variety of advantageous ways according to themethods presented herein. For example, many mobile devices have thecapability to listen for Bluetooth signal requests, and many consumerelectronic devices come equipped with Bluetooth connectivity and theability to determine signal strength of devices broadcasting Bluetooth.The Bluetooth protocol also is able to broadcast device information withits signals.

The first location information can come from any device capable ofsending and/or receiving short-range messages. For example, theinformation can be received from a gateway (e.g., a set-top box) havingBluetooth capabilities. When the gateway detects a Bluetooth signalreceived from a user's mobile device, the gateway may send theinformation (as first location information) to, for example, theawareness server 704. The information may identify the user's mobiledevice and/or the gateway. Additionally or alternatively, when theuser's mobile device detects a Bluetooth signal received from aBluetooth-capable device (e.g., the gateway, Bluetooth-connectedspeakers, etc.), the user's mobile device may send the information (asfirst location information) to the awareness server 704. The informationmay identify the Bluetooth device and/or the user's mobile device.

In step 910, the computing device may determine whether the user'slocation can be determined from the first (e.g., Bluetooth) locationinformation. For example, the computing device may compare the Bluetoothlocation information (which may identify the user's mobile device and/orthe other Bluetooth-compatible device) with information included in theawareness database 424 (e.g., a home topology). Based on the identity ofthe user's mobile device (e.g., account number, email, telephone number,MAC address, IP address, etc.), the computing device may determine whichuser profile to check. For example, the computing device may determinethat the mobile device belongs to the first user 805. Based on theidentity of the Bluetooth-compatible device (e.g., IP address, MACaddress, device name, device number, etc.), the computing device maydetermine, from the first user 805's profile, where the first user 805is currently located, based on a previously stored topology of the home.For example and with reference to FIG. 7, if the Bluetooth-compatibledevice is the Bluetooth device 720, the computing device may determinethat the first user 805 is currently located in the living room 708.

In some aspects, the computing device, in step 905, may receive locationinformation from more than one device, such as a first Bluetooth device720 located in living room 708 and a second Bluetooth device 722 locatedin the kitchen 710. In these circumstances, the computing device mayhave to decide whether the user is in the living room or kitchen. Thisdetermination may be made by comparing the Bluetooth signal strengthbetween the mobile device 750 and the first Bluetooth device 720 to theBluetooth signal strength between the mobile device 750 and the secondBluetooth device 720. Signal strength can be read from exchangedBluetooth messages (e.g., from the Bluetooth stack of sent or receivedmessages), such as during Bluetooth device pairing or other binding.

More generally, the computing device may determine a first signalstrength of a first wireless transmission between a user device (e.g.,the mobile device 750) and a first device (e.g., the Bluetooth device720). The computing device may also determine a second signal strengthof a second wireless transmission between the user device (e.g., themobile device 750) and a second device (e.g., the Bluetooth device 722).The user's (or the mobile device 750's) location may be determined basedon the first signal strength and the second signal strength. Forexample, the computing device may determine that the first signalstrength is greater than the second signal strength. In response to adetermination that the first signal strength is greater than the secondsignal strength, the computing device may determine that the location ofthe user device is a first room within the premises 702 (e.g., theliving room 708) rather than a second room in the premises 702 (e.g.,the kitchen 710), despite receiving Bluetooth information from twodifferent devices.

If the location of the user device cannot be determined using the first(e.g., Bluetooth) location information, the computing device maydetermine that the user associated with the user device is not home.This may be the case if the only Bluetooth-capable devices used todetermine the user's location and registered with the awareness serverare located within the user's home. If, on the other hand, aBluetooth-capable location tracking device is located outside of thehome (e.g., in the user's car), the computing device may determine thatthe user is not at any of the locations having the Bluetooth-capabledevices (e.g., the user is not home and not in the user's car).Furthermore, if the user's location cannot be determined using the firstlocation information, the computing device may try a different method.For example, the computing device may attempt to determine the locationof the user device using a second wireless protocol, as will bediscussed next.

In step 915, the computing device may receive second locationinformation. The second location information may comprise locationinformation with a lower sensitivity than the first location information(e.g., a medium sensitivity). For example, the location information maycome from a medium-range wireless protocol, such as Wi-Fi. Any of theIEEE 802.11 Wi-Fi standards may be used to determine the user'slocation. Other examples of medium-range wireless protocols (e.g., homewireless networks) that may be used include, for example, IEEE 802.16WiMAX.

In step 920, the computing device may determine whether the user'slocation can be determined from the second location information. In someaspects, connection to a Wi-Fi network may be used to determine whetherthe user is within a certain distance from the user's premise. Forexample, in response to a determination that the location of the userdevice using a Wi-Fi network at a premises of the user (e.g., that theuser is connected to the home Wi-Fi network), the computing device maydetermine that the user device is within a predetermined distance fromthe premises (e.g., the range of the Wi-Fi network). If the home hasmore than one medium-range network, each network may be used todetermine the user's distance from the home. For example, the home mayhave a Wi-Fi network and a WiMAX network. When the user device connectsto (or is able to see) the WiMAX network, the computing device maydetermine that the user is within a first predetermined distance (e.g.,radius) from the home (e.g., 10 miles, as used as a trigger in FIG. 8).When the user device connects to (or is able to see) the Wi-Fi network,the computing device may determine that the user is within a secondpredetermined distance (e.g., radius) from the home (e.g., 20 feet, asused as a trigger in FIG. 8). These distances may vary based on therange of each network. The medium-range wireless networks are notlimited to home networks and can include, for example, a Wi-Fi networkat a third party location, such as a coffee shop or department store.The Wi-Fi network at the coffee shop may also be associated with theprovider of the location services, streamlining location determination.In some aspects, the computing device may alternatively use both thefirst location information (e.g., Bluetooth information) and the secondlocation information (e.g., Wi-Fi information) in combination todetermine the user's location.

If the location of the user device cannot be determined using the second(e.g., Wi-Fi) location information, the computing device may determinethat the user associated with the user device is not home or within apredetermined distance from the home. Furthermore, if the user'slocation cannot be determined using the second location information, thecomputing device may try a different method. For example, the computingdevice may attempt to determine the location of the user device using athird wireless protocol, as will be described next.

In step 925, the computing device may receive third locationinformation. The third location information may comprise locationinformation with a lower sensitivity than the first location informationand the second location information (e.g., low sensitivity). In someaspects, the third location information may be used to track the user'slocation anywhere around the world. For example, the locationinformation may come from a long-range wireless protocol, such as globalpositioning system (GPS) or a cellular network. Additionally oralternatively, community-based Wi-Fi (e.g., Wi-Fi available across aWide Area Network) may be used. For example, STBs across the country maybe configured to broadcast public Wi-Fi beacons. User devices outsidethe home may receive these broadcasts, which may be used to determinethe user's location (i.e., relative to the Wi-Fi beacon received).

In step 930, the computing device may determine whether the user'slocation can be determined from the third location information. Theuser's location may be triangulated based on cellular towers (e.g., thecellular towers 726). Alternatively, the user's location may bedetermined using GPS. The third location information used may depend onthe user device's capabilities. For example, GPS information may be usedif the user's device has GPS capabilities. Cellular information may beused if the user's device has cellular capabilities. A combination ofGPS and cellular information may be used if the user's device has bothcellular and GPS capabilities. In some aspects, the computing device mayuse one or more of the first location information (e.g., Bluetoothinformation), the second location information (e.g., Wi-Fi information),and the third location information (e.g., GPS or cellular) incombination to determine the user's location.

If the user's location cannot be determined from first, second, or thirdlocation information, the computing device may consult other sources ofinformation (e.g., fourth location information, fifth locationinformation, etc.). If the computing device cannot determine the user'slocation from any of these sources of information, the computing device,in step 935, may determine the user's location from default information.The default information may be the user's last known location. Forexample, the computing device may periodically store the user's location(e.g., every 2 minutes, every 30 minutes, every hour, etc.). Defaultinformation may also be manually provided by the user. The computingdevice may send an instruction to the user's mobile device prompting theuser to provide his or her location. When the user inputs his or herlocation, the mobile device may send the information to the computingdevice. Default information may also be the user's historical locationtrends. For example, if the user is at work Monday through Friday at 2PM, and the current time is 2 PM (or close to 2 PM) on a Monday, thecomputing device may determine that the user is currently at work.Similarly, if the user is at home Monday through Wednesday at 9 PM, andthe current time is 9 PM (or close to 9 PM) on a Wednesday, thecomputing device may determine that the user is currently at home.

FIG. 10 illustrates an example method of performing automated actionsbased on a user's location according to one or more illustrative aspectsof the disclosure. The method may be performed by any of the computingdevices described herein, including cloud computing devices, computingdevices at the local office 103, computing devices within the location102, and/or mobile computing devices (e.g., a mobile phone).

In step 1005, the computing device may determine whether the user hasentered a new location. The computing device may determine that the userhas entered the new location by comparing the user's current locationwith a previous location, such as the user's most recent previouslocation. If the current and previous locations are different, thecomputing device may determine that the user has entered a new location.If the current and previous locations match, the computing device maydetermine that the user has not entered a new location. If the user hasnot entered a new location, the computing device may wait until the userenters a new location to act. The new location may be based on one ormore regions, as previously discussed. For example, each new locationmay correspond to a different room in the user's home. Additionally oralternatively, each new location may correspond to inside or outside ofthe user's home. Additionally or alternatively, each new location maycorrespond to a predetermined distance from the user's home (e.g., 10feet, 1 mile, 10 miles, etc.). Any level of granularity may be used todetermine when the user has entered a new location.

In step 1010, after the user enters a new location, the computing devicemay determine whether the user is the first user at the location. Forexample, the computing device may determine whether other members of theuser's group(s) (e.g., determined in step 530) are at the same location.The computing device may keep track of the number of users and identityof each user at the location. As previously discussed, the users'identities may correspond to, for example, their email addresses,account numbers, telephone numbers, device identifiers, etc.

In step 1015, the computing device may retrieve the user's profile, forexample, if the user is the first user at the location. As previouslydiscussed, the user's profile may have been stored in the awarenessdatabase 424 in step 540. On the other hand, if the user is not thefirst user at the location, the computing device, in step 1020, maydetermine the priority of the users currently at the location. Thispriority information may be stored in, for example, the awarenessdatabase 424. Users' priorities may be relative to the group to whichthe users belong. For example, the primary user (e.g., a primaryaccountholder) may have the highest (i.e., first) priority and all ofthe other, secondary users may have lower priorities. The priorities ofthe secondary users may also be predefined and stored in the awarenessdatabase 424. In some aspects, the first user at the location may havethe highest priority, and subsequent users may be added to the priorityqueue. If the first user leaves the location, the second user at thelocation might be given the highest priority. If the second user leaves,the third user at the location might be given the highest priority, andso on. In step 1025, the computing device may retrieve the profile ofthe user having the highest priority of all of the users at thelocation.

In step 1030, the computing device may notify user(s) at the location oftheir respective priorities. The computing device may send a message (orinstruct a message to be sent) to each user's mobile device at thelocation. The message to the primary user in the living room may state,for example, “You have the highest priority in the living room.” Themessage to the other users in the living room may indicate, for example,that the user does not have the highest priority in the living room, thepriority number of that user, and/or an indication of the primary user(with the highest priority). Instead of or in addition to sendingmessages to each user's device, the computing device may send a message(or instruct a message to be sent) for a display device, such as atelevision or an associated gateway device, to display a message thatall of the user's might be able to see. For example, the set-top box inthe living room may be instructed to display the message “[Name ofPrimary User] has the highest priority in the Living Room.”

In step 1035, the computing device may determine one or more automatedactions to perform based on the user's profile (e.g., the first user'sprofile 805) and the user's location. As previously discussed, theprofile may correlate each location with one or more automated action,including content-based actions and home automation-based actions.Examples of automated actions (turning on/off devices, turning on/offsecurity system, recommending content) were previously described withreference to FIG. 8. The computing device can send an instruction (orcause an instruction to be sent) to one or more devices to perform theaction. For example, an instruction may be sent to turn on the STB, toturn on the television, or to generate a content recommendation. Aninstruction may also be sent to the user's mobile device to, forexample, display a content recommendation or display a customized remotecontrol user interface.

The content recommendations may be based on the users at the location.If only one user is at the location, a recommendation based only on thatuser's preferences may be generated. For example, the user's profile mayindicate that the user likes action movies, and appropriate contentrecommendations may be generated. If two users are at the location, ahybrid recommendation based on both users' preferences may be generated.For example, the second user's profile may indicate that the second userlikes romantic comedy television shows. Content recommendationsincluding action movies and romantic comedy television shows may begenerated and displayed to all of the users at the location (e.g., onthe television) or to each user individually (e.g., on each user'smobile device).

Furthermore, each combination of users at the location may result in adifferent type of recommendation. To illustrate, assume that thepermission group includes a husband, a wife, their teenage daughter, andtheir four-year-old son. If the husband and the wife are in the livingroom (with the television), romantic content may be recommended. If thehusband, wife, and teenage daughter are in the living room,documentaries or news content may be recommended. If the husband, wife,and four-year-old son are in the living room, family movierecommendations may be made. If the teenage daughter is in the livingroom, music video or reality television show content recommendations maybe made. More generally, if user A and user B are at the location, arecommendation M may be made. If user A and user C are at the location,a recommendation N may be made. If user B and user C are at thelocation, a recommendation O may be made. If users A, B, and C are atthe location, a recommendation P may be made.

In step 1040, the computing device may perform the one or more selectedautomated actions (or send an instruction to another device to performthe automated actions). For example, if the action comprises generatinga content recommendation for the user associated with the user device,an instruction can be sent to a display device or STB in the home togenerate a content recommendation, as previously discussed. As anotherexample, an instruction can be sent to a gateway device at the premisein response to a determination that the user device is within thepredetermined distance (e.g., 20 feet, 1 mile, 10 miles, etc.) from thepremise.

In step 1045, the computing device may determine whether content accesspermissions have changed for any of the users at the location or anyother users, such as other users in the user's group that are notcurrently at the location. If not, the method may proceed to step 1005to wait for another device to enter the location.

In step 1050, if content access permissions have changed due to the userentering the location, the computing device may determine the user'scontent access permissions. As previously discussed, the user's contentaccess permissions may depend on the user's location. For example, theuser may be permitted to access a first group of content items at afirst location (e.g., within the home or within a particular room in thehome) and a second group of content items different from the first groupat a second location (e.g., outside of the home). In some aspects, thesecond group of content items may be a subset of the first group ofcontent items, such that the user is permitted to access more contentwhen the user is in the home than when the user is outside the home. Thesecond group of content items need not be a subset of the first groupand may instead be a different group of content items (with or withoutoverlap) with the first group of content items.

In step 1055, the computing device may determine other users' (e.g.,users in the user's group) content access permissions. For example, thecomputing device may permit users in the same group as the user at thelocation to access the same content as the user can access. In otherwords, the computing device may permit a plurality of other devices toaccess the group of content item in response to permitting the user atthe location to access the group of content items (based on the locationof the device). In some aspects, the other users (or devices) may be atthe same location in order to access the same content. For example,users might not be able to access the same content if they are not atthe same location. Alternatively, the other users/devices might not needto be at the same location as the user at the location in order toaccess the same group of content items.

In some aspects, the amount of content that can be accessed may dependon the number of users in the group that are at a particular location,such as a living room in the home. For example, assume that a firstdevice associated with a first user is at a particular location and thatthe first user is the only user at that location. The first user may bepermitted to access a first group of content items. In response to adetermination that a second device in the same permission group as thefirst device is also at that location, the computing device may permitthe first user of the first device and the second user of the seconddevice to access the first group of content items and a second group ofcontent items. Furthermore, in response to a determination that a thirddevice in the same permission group as the first and second devices isat the same location as the first and second devices, the computingdevice may permit the first user of the first device, the second user ofthe second device, and the third user of the third device to access thefirst group of content items, the second group of content items, and thethird group of content items. Therefore, users can be encouraged to meetat particular locations by permitting them to access more content themore users there are at the location.

In step 1060, the computing device may notify users of their new contentaccess permissions (if they have changed). For example, a messagenotifying each of the devices of content restrictions may be sent toeach respective device.

FIG. 11 illustrates another example method of performing automatedactions based on a user's location according to one or more illustrativeaspects of the disclosure. The method may be performed by any of thecomputing devices described herein, including cloud computing devices,computing devices at the local office 103, computing devices within thelocation 102, and/or mobile computing devices (e.g., a mobile phone).

In step 1105, the computing device may determine whether the user hasleft a location. Similar to determining whether a user has entered alocation (e.g., step 1005), short-range wireless location information,medium-range wireless location information, and long-range wirelesslocation information may be sequentially used or used in combination toand current location determine the location of each user. Furthermore,the user's previous location can be used to determine whether the userleft the previous location.

In step 1110, the computing device may remove the user from a list ofusers at the location when the user has left the location. By doingthis, the computing device may keep track of which users are at whichlocations. In step 1115, the computing device may determine new priorityinformation for users still at the location. This step may be similar tostep 1020 previously discussed. For example, if the highest priorityuser left the location, each of the remaining users can be shifted upone position, such that the second priority user becomes the firstpriority user, the third priority user becomes the second priority user,etc. If the second priority user left the location, the first priorityuser may remain the first priority user, but the third priority user maybe shifted to the second spot vacated by the user that left.

In step 1120, the computing device may notify user(s) at the location oftheir respective priorities. This step may be similar to step 1030previously discussed.

In step 1125, the computing device may determine whether content accesspermissions have changed for any of the users at the location or anyother users, such as other users in the leaving user's group that arenot currently at the location. This step may be similar to step 1045previously discussed. If content access permissions have changed, thecomputing device may determine the leaving user's content accesspermissions in step 1130 and determine the other users' (e.g., users inthe user's group) content access permissions in step 1135.

Several examples of steps 1125, 1130, and 1135 will now be provided. Inone example, the computing device may prevent a plurality of otherdevices from accessing a group of content items in response to adetermination that a device in the group is no longer at the location.If all users in the same group are permitted to access a group ofcontent items while one of the users is at a particular location, suchas the living room, and the only user at the living room leaves theliving room, the users in that group might not be permitted to accessthe group of content items after the user leaves the living room. Asanother example, assume that the number of content items that users in agroup can access depends on the number of users at the location, aspreviously discussed. If one of the users in the group leaves thelocation, the computing device may determine that content accesspermissions have changed (e.g., the remaining users at the location mayaccess a small number of content items).

In step 1140, the computing device may notify users of their new contentaccess permissions. This step may be similar to step 1060 previouslydiscussed. In step 1145, the computing device may determine whetherthere is a new user with highest priority at the location that theleaving user left. If not, the method may return to step 1105 todetermine whether another user has left the location. If there is a newuser with highest priority (e.g., the leaving user previously had thehighest priority), the computing device may retrieve the profile of theuser having the highest priority of all of the users at the location instep 1150. Retrieval of the user's profile was previously discussed withrespect to steps 1015 and 1025.

In step 1155, the computing device may determine one or more automatedactions to perform based on the highest priority user's profile andlocation. As previously discussed, the profile may correlate eachlocation with one or more automated action, including content-basedactions and home automation-based actions. Step 1155 may be similar tostep 1035 previously discussed.

In step 1160, the computing device may perform the one or more selectedautomated actions (or send an instruction to another device to performthe automated actions). This step may be similar to step 1040 previouslydiscussed. Alternatively, the computing device may query the user havingthe highest priority to determine whether that user wants to perform theautomated actions now or later. For example, the STB may be tuned tochannel 5. The user with the highest priority may prefer to remain onchannel 5 now, rather than the STB automatically switching to thatuser's default channel. The highest priority user may also set a time inthe future for the computing device to perform automated actions for theuser.

In some aspects, the computing device may track the amount of time thata user has been at a particular location. For example, the primary usermay be a father, and one of the secondary users may be his son. Thefather may set up his profile to keep track of the amount of time hisson has spent at a particular location, such as the living room in frontof the television or a gaming console. The father may be periodicallynotified of the amount of time his son spends in front of the TV ornotified when the son spends more than a predetermined amount of time infront of the TV (e.g., more than 4 hours).

The various features described above are merely non-limiting examples,and can be rearranged, combined, subdivided, omitted, and/or altered inany desired manner. For example, features of the computing device(including the remote control device and the terminal device) describedherein can be subdivided among multiple processors and computingdevices. The true scope of this patent should only be defined by theclaims that follow.

1. A method comprising: determining a first signal strength of a firstwireless transmission between a first user device and a first locatingdevice; determining a second signal strength of a second wirelesstransmission between the first user device and a second locating device;determining a location of the first user device by comparing the firstsignal strength and the second signal strength, wherein the location ofthe first user device is within a premises; and based on the determiningthe location of the first user device, sending, to a computing device atthe premises, an instruction to cause an action corresponding to thelocation of the first user device.
 2. The method of claim 1, wherein thefirst wireless transmission and the second wireless transmissioncomprise Bluetooth transmissions.
 3. The method of claim 1, whereindetermining the location of the first user device comprises: based on adetermination that the first signal strength is greater than the secondsignal strength, determining that the location of the first user deviceis a first room at the premises.
 4. The method of claim 1, wherein thelocation of the first user device comprises a room at the premises, andwherein the action comprises turning on a display device located in theroom.
 5. The method of claim 1, further comprising: receiving a firstindicated position for the first locating device; and receiving a secondindicated position for the second locating device, wherein thedetermining the location of the first user device is based on the firstindicated position and the second indicated position.
 6. The method ofclaim 1, further comprises: determining a first user profile associatedwith the first user device; and determining, based on the first userprofile, the instruction to cause the action.
 7. The method of claim 1,further comprises: determining, based on the location of the first userdevice, a communication priority for the first user device; anddetermining, based on the communication priority, the instruction tocause the action.
 8. The method of claim 1, wherein the action comprisesat least one of: outputting a content recommendation, adjusting athermostat, adjusting a security system, changing a content channel,displaying content, or granting content access.
 9. An apparatuscomprising: one or more processors; and memory storing instructionsthat, when executed by the one or more processors, cause the apparatusto: determine a first signal strength of a first wireless transmissionbetween a first user device and a first locating device; determine asecond signal strength of a second wireless transmission between thefirst user device and a second locating device; determine a location ofthe first user device by comparing the first signal strength and thesecond signal strength, wherein the location of the first user device iswithin a premises; and based on the determining the location of thefirst user device, cause transmission of an instruction to cause anaction corresponding to the location of the first user device.
 10. Theapparatus of claim 9, wherein the first wireless transmission and thesecond wireless transmission comprise Bluetooth transmissions.
 11. Theapparatus of claim 9, wherein the instructions, when executed by the oneor more processors, cause the apparatus to determine the location of thefirst user device by: based on a determination that the first signalstrength is greater than the second signal strength, determining thatthe location of the first user device is a first room at the premises.12. The apparatus of claim 9, wherein the instructions, when executed bythe one or more processors, cause the apparatus to: receive a firstindicated position for the first locating device; and receive a secondindicated position for the second locating device, wherein thedetermining the location of the first user device is based on the firstindicated position and the second indicated position.
 13. The apparatusof claim 9, wherein the instructions, when executed by the one or moreprocessors, cause the apparatus to: determine a first user profileassociated with the first user device; determine, based on the locationof the first user device, a communication priority for the first userdevice; and determine, based on the first user profile and thecommunication priority, the instruction to cause the action.
 14. Theapparatus of claim 9, wherein the action comprises at least one of:activating a display device, outputting a content recommendation,adjusting a thermostat, adjusting a security system, changing a contentchannel, displaying content, or granting content access.
 15. A systemcomprising: a first computing device; and a second computing device;wherein the first computing device comprises: one or more firstprocessors; and first memory storing first instructions that, whenexecuted by the one or more first processors, cause the first computingdevice to: determine a first signal strength of a first wirelesstransmission between a first user device and a first locating device;determine a second signal strength of a second wireless transmissionbetween the first user device and a second locating device; and whereinthe second computing device comprises: one or more second processors;and second memory storing second instructions that, when executed by theone or more second processors, cause the second computing device to:determine a location of the first user device by comparing the firstsignal strength and the second signal strength; and based on thedetermining the location of the first user device, send an instructionto cause an action corresponding to the location of the first userdevice.
 16. The system of claim 15, wherein the first wirelesstransmission and the second wireless transmission comprise Bluetoothtransmissions.
 17. The system of claim 15, wherein the secondinstructions, when executed by the one or more second processors, causethe second computing device to determine the location of the first userdevice by: based on a determination that the first signal strength isgreater than the second signal strength, determining that the locationof the first user device is a first room at a premises.
 18. The systemof claim 15, wherein the second instructions, when executed by the oneor more second processors, cause the second computing device to: receivea first indicated position for the first locating device; and receive asecond indicated position for the second locating device, wherein thedetermining the location of the first user device is based on the firstindicated position and the second indicated position.
 19. The system ofclaim 15, wherein the second instructions, when executed by the one ormore second processors, cause the second computing device to: determinea first user profile associated with the first user device; determine,based on the location of the first user device, a communication priorityfor the first user device; and determine, based on the first userprofile and the communication priority, the instruction to cause theaction.
 20. The system of claim 15, wherein the action comprises atleast one of: activating a display device, outputting a contentrecommendation, adjusting a thermostat, adjusting a security system,changing a content channel, displaying content, or granting contentaccess.